home *** CD-ROM | disk | FTP | other *** search
- 100 REM V1 2 JUL/86
- 110 DATA 162,6,32,198,255,32,228,255,201,35,208,249,76,204,255
- 111 DATA 162,19,134,252,162,6,32,198,255,32,228,255,164,144,8,72
- 112 DATA 32,204,255,104,201,35,240,37,32,210,255,201,13,208,26,198,252,208,22
- 113 DATA 162,0,189,210,3,32,210,255,232,224,8,208,245,32,228,255
- 114 DATA 240,251,162,19,134,252,40,240,200,96,40,96,91,77,79,82,69,93,145,13
- 120 FORJ=900TO985:READX:POKEJ,X:U=U+X:NEXTJ
- 121 IF U<>12164 THEN STOP
- 130 K1=131:DIMK%(K1),K(K1),D%(4)
- 140 S1=114:DIMS%(S1),T%(S1),S$(S1),M%(S1,10)
- 150 I1=38:DIMI%(I1),I$(I1),IV$(I1)
- 160 PRINT" WELCOME ";
- 170 OPEN1,8,2,"0:ADVKEYS":FORJ=1TOK1:INPUT#1,K%(J),K(J):NEXTJ:CLOSE1
- 180 PRINT"TO ";
- 190 OPEN1,8,2,"0:ADVSHOR":FORJ=1TOS1:INPUT#1,S$(J),T%(J):NEXTJ:CLOSE1
- 200 PRINT"ADVENTURE";
- 210 OPEN1,8,2,"0:ADVMAP":FORJ=1TOS1:FORK=1TO10:INPUT#1,M%(J,K):NEXTK,J:CLOSE1
- 220 PRINT"!"
- 230 OPEN1,8,2,"0:ADVITM":FORJ=1TOI1:INPUT#1,I$(J):NEXTJ
- 240 FORJ=1TOI1:INPUT#1,I%(J):NEXTJ
- 250 FORJ=1TOI1:INPUT#1,IV$(J):NEXTJ:CLOSE1
- 260 L1=6:L5=1E6:L6=149:B0=1:S%(0)=1
- 270 INPUT "DO YOU WANT INSTRUCTIONS";Z$
- 280 F1=0
- 290 IFASC(Z$)=78GOTO330
- 300 GOSUB4460
- 330 J1=0
- 340 K9=18:GOSUB4260:IF(T%(L1)AND1)>0OR(I=-1ANDL=1)GOTO360
- 350 F1=13:GOTO2930
- 360 IFS%(L1)=5GOTO380
- 370 IFS%(L1)>0ORF9>J1GOTO390
- 380 IF(T%(L1)AND64)=0THENF1=L1+200:S%(L1)=0:GOSUB4460:GOTO400
- 390 PRINTS$(L1)
- 400 S%(L1)=S%(L1)+1:GOSUB3740
- 410 IFI%(27)=-1THENF1=50:GOSUB4460
- 420 IFM0=0GOTO4410
- 430 GOSUB3570:PRINT:INPUT"ACTION [191][157][157][157]";A$
- 431 IF A$="SAVE" GOTO 5000
- 432 IF A$="RESTORE" GOTO 5300
- 440 A=LEN(A$):FORJ=1TOA:IFASC(MID$(A$,J))=32THENNEXTJ
- 450 K9=0:J1=J:IFJ>AGOTO420
- 460 FORJ=J1TOA:IFASC(MID$(A$,J))<>32THENNEXTJ
- 470 J2=J-J1:IFJ<=ATHENFORJ=JTOA:IFASC(MID$(A$,J))=32THENNEXTJ
- 480 IFJ>ATHENJ3=J1:J4=J2:GOTO510
- 490 J3=J:FORJ=J3TOA:IFASC(MID$(A$,J))<>32THENNEXTJ
- 500 J4=J-J3
- 510 L$=MID$(A$,J3,J4):B=0:FORJ=1TO5:B=B*26+ASC(MID$(L$,J))-64
- 520 IFJ<LEN(L$)THENNEXTJ
- 530 FORJ=1TO77:IFB=K(J)GOTO550
- 540 NEXTJ:IFL$="IT"ORL$="THEM"THENK9=K8:GOTO560
- 550 K9=K%(J):K7=J:IFK9>199THENK9=0
- 560 K8=K9:IFK9>99ANDK9<>154THENK=K9:GOTO750
- 570 K$=MID$(A$,J1,J2):B=0:FORJ=1TO5:B=B*26+ASC(MID$(K$,J))-64
- 580 IFJ<LEN(K$)THENNEXTJ
- 590 FORJ=51TOK1:IFB=K(J)GOTO650
- 600 NEXTJ:IFK9=0THENPRINT"I DON'T KNOW THAT WORD.":GOTO420
- 610 IFK6>0THENK=K6:GOTO730
- 620 GOSUB4260:IFI>0GOTO420
- 630 J=K7:IFK9>0THENPRINT"WHAT DO YOU WANT TO DO WITH THE ";L$;"?":GOTO420
- 640 PRINT"I DON'T KNOW HOW TO DO THAT.":GOTO420
- 650 K=K%(J):K6=0:IFK9>0ORK<299GOTO730
- 660 IFK=304THENJ1=1:J2=34:GOTO690
- 670 IFK=307THENJ1=35:J2=38:GOTO690
- 680 K6=K:PRINTK$;" WHAT?":GOTO420
- 690 FORJ=J1TOJ2:IFI%(J)<>L1GOTO720
- 700 IFK9>0GOTO680
- 710 K9=J
- 720 NEXTJ:IFK9=0GOTO680
- 730 IFK9=39THENF1=101:GOTO2930
- 740 IFK9>0ANDK9<35THENGOSUB4260:IFI>=0GOTO1820
- 750 M0=0:IFK>99ANDK<110GOTO860
- 760 IFK<200ANDL5<50THENPRINT"PLEASE EXIT BY MAIN ENTRANCE ONLY.":GOTO420
- 765 IFK9=32ANDL1>112THENF1=128:GOTO2930
- 770 ONK-149GOTO1660,1690,1710,1900,1920,1960,3510,840,3410
- 780 ONK-199GOTO2140,1830,4570,2250,2290,2310,2970,3030,3420,3540
- 790 ONK-209GOTO3550,3560,4670,1650,420,2000,2030,3260,3310,3330
- 800 ONK-219GOTO3380,3390
- 810 ONK-299GOTO1980,2060,2190,2230,2340,2500,2610,2740,2850,3120
- 820 ONK-309GOTO3220,3460,3480,1740,1770
- 840 FORJ=1TO10:IFL2=M%(L1,J)THENL9=L2:GOTO900
- 850 NEXTJ:PRINT"I'VE FORGOTTEN WHICH WAY I CAME.":GOTO420
- 860 M0=1:D=K-99
- 870 IFL>0GOTO890
- 880 K9=18:GOSUB4260:IF(T%(L1)AND3)=2THENGOTO2040
- 890 L9=M%(L1,D):IFL9=0THENPRINT"YOU CAN'T GO THAT WAY.":GOTO420
- 900 IFI%(37)=L1ANDL9<>L2THENPRINT"YOU CAN'T GET BY THE SNAKE":GOTO420
- 910 IFI%(36)=L1ANDL9<>L2THENF1=53:GOTO2930
- 920 IFABS(L1-L9)>1GOTO1010
- 930 IFL1+L9=21ANDG=0THENF1=100:GOTO2930
- 940 IFL1+L9=39ANDB2=0THENF1=102:GOTO2930
- 950 IFL1+L9<>115GOTO980
- 960 FORJ=1TOI1:IFJ=10ORI%(J)<>-1THENNEXTJ:GOTO980
- 970 F1=120:GOTO2930
- 980 IFL1+L9=121GOTO1200
- 990 IFL1+L9=147ANDD2=0THENF1=130:GOTO2930
- 1000 IFL1=17ANDI%(1)=-1THENF1=103:GOTO2930
- 1010 IFL1<>40ORL9<>37GOTO1040
- 1020 F1=57:J=25:IFI%(25)>-1THENJ=31:F1=58
- 1030 IFI%(J)=-1GOTO2930
- 1040 IFL9=255THENGOSUB1260
- 1050 L2=L1:L1=L9:IFL1<10GOTO1090
- 1060 L5=L5-1:IFL5<>50GOTO1080
- 1070 FORJ=17TO23STEP2:I%(J)=0:NEXTJ:I%(16)=0:G=0:B0=0:B2=0:F1=55:GOSUB4460
- 1080 IFL5=0THENF1=56:GOSUB4460:FORJ=16TO21:I%(J)=0:NEXTJ:L1=113:GOTO330
- 1090 L6=L6-L:IFL6>75ORI%(33)>-1GOTO1110
- 1100 L6=1E9:I%(33)=0:I%(34)=-1:F1=11:GOSUB4460
- 1110 IFL6<0THENF1=104:GOTO4660
- 1120 IFL6=75THENF1=10:GOSUB4460
- 1130 IF(T%(L1)AND32)>0GOTO330
- 1140 FORJ=0TO4:D%=D%(J):IFD%<0ORD%=L1GOTO1180
- 1150 IFD%=L2THENIFL1>17AND(L1<58ORL1>69)THEND%=L1:GOTO1170
- 1160 D%=RND(1)*84+17:IFD%>57THEND%=D%+12
- 1170 D%(J)=D%
- 1180 NEXTJ
- 1190 GOTO330
- 1200 IFB3=1THEND=0:GOTO890
- 1210 IFT=1ANDI%(35)=L1THENT=0:F1=110:GOTO2930
- 1230 F1=105:IFT=0GOTO2930
- 1240 IFI%(27)=-1THENB3=1:S%(66)=1:F1=19:GOSUB4460:GOTO4590
- 1250 GOTO1000
- 1260 IFL1=44GOTO1290
- 1270 IFD=7ORRND(1)>.1GOTO1350
- 1280 L9=38:GOTO1370
- 1290 IFRND(1)<.5GOTO1350
- 1300 L9=33:J=RND(1):IFJ<.2GOTO1370
- 1310 L9=37:IFJ<.4GOTO1370
- 1320 L9=45:IFJ<.6GOTO1370
- 1330 L9=92:IFJ<.8GOTO1370
- 1340 L9=76:GOTO1370
- 1350 PRINT"YOU HAVE CRAWLED THRU SOME LITTLE HOLES":L9=L1
- 1360 PRINT"AND ENDED UP IN THE MAIN PASSAGE."
- 1370 RETURN
- 1380 K=B4
- 1390 IFI%(26)=39THENK=K+1
- 1400 J2=-2:IFD%(4)>=0ANDI%(15)>0THENJ2=I%(15)
- 1410 V=10:FORJ=1TO15:J1=I%(J)
- 1420 IFJ1=-1THENK=K+V/2:GOTO1460
- 1430 IFJ1=7THENK=K+V:GOTO1450
- 1440 IFJ1=J2THENK=K+INT(V/4)
- 1450 IFS%(J1)>0THENK=K+1
- 1460 IFJ=5THENV=20
- 1470 NEXTJ
- 1480 FORJ=0TO3:IFD%(J)<0THENK=K+6
- 1490 NEXTJ
- 1500 K=K-R0*3-H+(L1>10)*2
- 1510 J1=K:B$=" BEGINNING":K=K-20:IFK<0GOTO1560
- 1520 B$=" NOVICE":K=K-30:IFK<0GOTO1560
- 1530 B$=" SEASONED":K=K-50:IFK<0GOTO1560
- 1540 B$="N ADVANCED":K=K-80:IFK<0GOTO1560
- 1550 B$="N EXPERT"
- 1560 PRINT"YOUR SCORE IS";J1;"OUT OF A POSSIBLE"
- 1570 PRINT"300, WHICH RATES YOU AS A";B$
- 1580 PRINT"ADVENTURER."
- 1590 IFK<0GOTO1620
- 1600 IFJ1>=300THENPRINT"CONGRATULATIONS ON A PERFECT SCORE!"
- 1610 GOTO1640
- 1620 PRINT"TO ACHIEVE THE NEXT HIGHER RATING, YOU"
- 1630 PRINT"WILL NEED";-K;"MORE POINTS."
- 1640 RETURN
- 1650 GOSUB1380:GOTO420
- 1660 IFL1<>7ANDL1<>26GOTO1680
- 1670 L9=33-L1:GOTO1050
- 1680 PRINT"NOTHING HAPPENS.":GOTO420
- 1690 IFL1<>7ANDL1<>13GOTO1680
- 1700 L9=20-L1:GOTO1050
- 1710 IFL1<>26ANDL1<>58GOTO1680
- 1720 IFI%(10)=-1THENI%(10)=58
- 1730 L9=84-L1:GOTO1050
- 1740 F1=106:IFK9=26GOTO2930
- 1750 F1=107:IFK9<>31ORL1<113GOTO2930
- 1760 F1=82:GOSUB4460:GOSUB3710:GOTO420
- 1770 F1=108:IFK9<>41GOTO2930
- 1780 F1=109:IFL1=80GOTO2930
- 1790 IFL1<113GOTO1820
- 1800 F1=80:GOSUB4460
- 1810 F1=69:GOTO4660
- 1820 PRINT"I SEE NO ";L$;" HERE.":GOTO420
- 1830 IFK9=16AND(T%(L1)AND16)>0GOTO2260
- 1840 D=0:IFL1=19THEND=7
- 1850 IFL1=20THEND=3
- 1860 IFL1=60THEND=2
- 1870 IFL1=61THEND=6
- 1880 GOTO890
- 1890 GOTO1680
- 1900 IFL1>10GOTO1680
- 1910 L9=7:GOTO1050
- 1920 IFL1<5ORL1>9GOTO1940
- 1930 L9=10:GOTO1050
- 1940 IFL1<12ORL1>16GOTO1680
- 1950 L9=11:GOTO1050
- 1960 IFL1<25ORL1>32GOTO1680
- 1970 L9=26:GOTO1050
- 1980 IFK9=18THENF1=17:GOTO2930
- 1990 PRINT"PECULIAR. ";:GOTO1680
- 2000 IFL1<>50THEND=9:GOTO890
- 2010 D=0:IFP1<>2GOTO890
- 2020 L9=70:GOTO920
- 2030 IF(T%(L1)AND2)=0GOTO1680
- 2040 F1=18:GOSUB4460:GOTO4590
- 2050 IFI%(21)=L1ANDI%(K9)=L1THENI%(21)=-1:I%(K9)=-1:GOTO2490
- 2060 IFI%(21)<>-1THENB$="BOTTLE":GOTO2110
- 2070 IFK9=6THENF1=52:GOTO2930
- 2080 IF(T%(L1)AND16)>0THENB0=1:I%(16)=-1:I%(17)=0:GOTO2130
- 2090 IFL1=49THENB0=2:I%(17)=-1:I%(16)=0:GOTO2130
- 2100 GOTO2120
- 2110 PRINT"YOU HAVE NO ";B$:GOTO420
- 2120 PRINT"NOTHING TO FILL HERE.":GOTO420
- 2130 PRINT"THE BOTTLE IS FILLED.":GOTO420
- 2140 IFI%(21)<>-1GOTO2060
- 2150 IFL1=50ANDI%(16)<0GOTO2990
- 2160 PRINT"THE BOTTLE IS EMPTY."
- 2170 IFI%(16)+I%(17)=-1THENF1=71:GOSUB4460
- 2180 B0=0:I%(17)=0:I%(16)=0:GOTO420
- 2190 IFK9<>18GOTO2220
- 2200 L=1:IF(T%(L1)AND1)=0GOTO330
- 2210 GOTO2490
- 2220 PRINT"I DON'T UNDERSTAND.":GOTO420
- 2230 IFK9<>18GOTO2220
- 2240 L=0:GOTO2490
- 2250 IFK9<>16OR(T%(L1)AND16)=0GOTO2270
- 2260 F1=71:GOTO2930
- 2270 IFL1=6ORL1=68THEND=3:GOTO890
- 2275 IFL1=10THEND=10:GOTO890
- 2280 GOTO1680
- 2290 IFL1=7ORL1=69THEND=7:GOTO890
- 2300 GOTO1680
- 2310 FORJ=1TOI1:IFI%(J)>-1THENNEXTJ:PRINT"YOU ARE CARRYING NOTHING.":GOTO420
- 2320 J1=J:PRINT"YOU HAVE:":FORJ=I1TOJ1STEP-1:IFI%(J)=-1ANDJ<>27THENPRINTIV$(J)
- 2330 NEXTJ:PRINT:GOTO420
- 2340 IFK9=16ORK9=17GOTO2050
- 2350 Z8=0:FORJ=1TOI1:IFI%(J)=-1THENZ8=Z8+1
- 2360 NEXTJ:IFZ8<7ORK9=27GOTO2380
- 2370 PRINT"YOU'RE CARRYING TOO MUCH.":GOTO420
- 2380 F1=44:IFK9=14ANDI%(36)>0GOTO2930
- 2390 F1=38:IF(K9=12ORK9=27ORK9=28)ANDB1=0ANDI%(27)=L1GOTO2930
- 2400 F1=116:IF(K9=12ORK9=27)ANDC=0GOTO2930
- 2410 IFK9=42THENIFL1=50ORL1>112THENF1=76:GOTO2930
- 2420 IFK9=32ANDI%(23)=-1THENF1=20:GOTO2930
- 2430 IFK9<>32ORI%(22)<0GOTO2450
- 2440 F1=111:GOTO2930
- 2450 IFK9>34THENPRINT"YOU MUST BE JOKING!":GOTO420
- 2460 I%(K9)=-1
- 2470 IFK9=21ANDB0>0THENI%(B0+15)=-1
- 2480 IFK9=31ANDL1=113THENPRINT"OK.":F1=81:GOTO2930
- 2490 PRINT"OK.":GOTO420
- 2500 IFK9=16ORK9=17GOTO2140
- 2505 IFK9>34GOTO2220
- 2510 I%(K9)=L1:IFK9=21ANDB0>0THENI%(15+B0)=L1
- 2520 IFL1>112THENGOSUB4340:IFI<0THENI%(K9)=0
- 2530 IFK9=16ORK9=17THENB0=0:I%(K9)=0
- 2540 IFK9=22ANDI%(32)=-1THENI%(32)=L1
- 2550 IFK9=4ANDL1=100THENI%(K9)=0:I%(33)=L1:GOTO2730
- 2560 IFK9<>6GOTO2580
- 2570 IFI%(29)<>L1THENF1=14:GOSUB4460:I%(K9)=0:I%(30)=L1
- 2580 IFK9=32GOTO3120
- 2590 IFK9<>27ORT>0ORI%(35)<>L1GOTO2490
- 2600 T=2:F1=31:GOTO2930
- 2610 IFK9>15ORI%(35)<>L1GOTO2630
- 2620 I%(35)=121-L1:I%(K9)=0:T=1:F1=54:GOTO2930
- 2630 IFK9=20ANDI%(27)=L1GOTO2960
- 2640 IFK9<>28GOTO2500
- 2650 IFI%(35)=L1THENF1=16:GOTO2930
- 2660 IFI%(27)=L1ANDB1=0THENF1=77:GOTO2930
- 2670 FORJ=0TO3:IFD%(J)<>L1THENNEXTJ:GOTO2500
- 2680 IFRND(1)<.5THENPRINT"MISSED!":GOTO2720
- 2690 PRINT"YOU KILLED A LITTLE DWARF":J2=J:FORJ=1TO3:IFD%(J)<0GOTO2710
- 2700 NEXTJ:F1=40:GOSUB4460
- 2710 D%(J2)=-1
- 2720 I%(28)=L1:J1=0
- 2730 GOSUB3890:GOTO420
- 2740 IFK9<I1ANDI%(K9)<>L1GOTO1820
- 2741 IFK9<>I1GOTO2745
- 2742 GOSUB4390:IFJ1=0GOTO1820
- 2745 IFK9<>36GOTO2790
- 2750 INPUT"WITH WHAT? YOUR BARE HANDS";A$
- 2760 IFA$="AXE"THENF1=99:GOTO2930
- 2770 IFASC(A$)<>89GOTO440
- 2780 I%(36)=0:I%(38)=L1:F1=42:GOTO2930
- 2790 IFK9=35THENF1=36:GOTO2930
- 2800 IFK9=38THENF1=51:GOTO2930
- 2810 IFK9=32THENI%(K9)=0:S%(23)=1:F1=64:GOTO2930
- 2820 IFK9=27THENF1=78+SGN(B1):GOTO2930
- 2830 F1=113:IFK9>31THENF1=112
- 2840 GOTO2930
- 2850 IFK9=25ORK9=31THENF1=98:GOTO2930
- 2860 IFK9=27GOTO2950
- 2870 F1=39:IFK9>31THENONK9-31GOTO2890,2220,2220,2900,2910,2920,2930
- 2880 GOTO2220
- 2890 F1=21:GOTO2930
- 2900 F1=37:GOTO2930
- 2910 F1=35:GOTO2930
- 2920 F1=35:IFI%(32)=-1GOTO2940
- 2930 GOSUB4460:GOTO420
- 2940 I%(32)=0:F1=45:GOTO2930
- 2950 B$="FOOD":IFI%(20)>-1GOTO2110
- 2960 B1=1:I%(20)=0:F1=34:GOTO2930
- 2970 B$="WATER":IFL1<>50GOTO620
- 2980 IFI%(16)>-1GOTO2110
- 2990 I%(16)=0:B0=0:IFP1=3GOTO1680
- 3000 P1=P1+1:IFP1=1THENF1=32:GOTO2930
- 3010 IFP1=2THENF1=33:GOTO2930
- 3020 F1=72:GOTO2930
- 3030 B$="KEYS":IFL1=10ORL1=11GOTO3050
- 3040 IFL1<>69ORASC(K$)<>85GOTO1680
- 3050 IFI%(19)>-1GOTO2110
- 3060 IFL1=69GOTO3090
- 3070 G=0:IFASC(K$)=85THENG=1
- 3080 GOTO2490
- 3090 IFB1=0THENF1=38:GOTO2930
- 3100 IFC=0THENC=1:B1=2
- 3110 F1=121:GOTO2930
- 3120 IFK9<>32GOTO3180
- 3130 FORJ=36TO37:IFI%(J)=L1GOTO3150
- 3140 NEXTJ:I%(K9)=L1:GOTO2490
- 3150 IFJ=36GOTO3170
- 3160 I%(J)=0:I%(K9)=L1:F1=22:GOTO2930
- 3170 I%(K9)=0:F1=23:GOTO2930
- 3180 IFK9<>27GOTO2220
- 3190 IFI%(K9)=-1GOTO2500
- 3200 IFC=0THENK$="U":GOTO3030
- 3210 GOTO2220
- 3220 IFK9<>23GOTO1680
- 3230 IFABS(L1-19.5)>1GOTO1680
- 3240 F1=114+B2:B2=1-B2:GOTO2930
- 3260 IFL1=10ORL1=11ORL1=114THENK$="U":GOTO3030
- 3270 F1=117:IFK9<>25ANDK9<>31GOTO2930
- 3280 F1=118:IFI%(9)>-1GOTO2930
- 3290 F1=63:IFK9=31GOTO2930
- 3300 I%(7)=43:I%(25)=0:I%(31)=L1:F1=41:GOTO2930
- 3310 IFL1=10ORL1=11GOTO3030
- 3320 GOTO1680
- 3330 F1=119:IFL1<113GOTO2930
- 3340 F1=66:IFL1=114ANDI%(24)=113GOTO3370
- 3350 F1=67:IFL1=113ANDI%(24)=0GOTO3370
- 3360 F1=68
- 3370 B4=(68-F1)*10+2:GOTO4660
- 3380 PRINT"WATCH IT!":GOTO420
- 3390 IFL1=113THENF1=46:GOSUB4460:GOTO1810
- 3400 GOTO1680
- 3410 F1=47:GOTO2930
- 3420 B$="OIL":IFL1=50THENF1=129:GOTO2930
- 3425 IFL1<>73GOTO620
- 3430 IFD2=1GOTO1680
- 3440 IFB0<2GOTO2110
- 3450 D2=1:I%(17)=0:B0=0:F1=43:GOTO2930
- 3460 F1=122:IFK9<>20GOTO2930
- 3470 I%(K9)=0:F1=123:GOTO2930
- 3480 IF(T%(L1)AND16)>0THENF1=65:GOTO2930
- 3490 F1=124:IFK9<>16GOTO2930
- 3500 I%(K9)=0:F1=125:GOTO2930
- 3510 IFL1<>71GOTO1680
- 3520 IFI%(8)=L1ORI%(8)=-1THENI%(8)=0:F1=127:GOTO2930
- 3530 I%(8)=L1:I%(35)=60:T=0:F1=126:GOTO2930
- 3540 F9=2:F$="":CLOSE6:GOTO420
- 3550 F9=0:GOTO420
- 3560 F9=1:GOTO420
- 3570 IF(T%(L1)AND4)=0THENL4=0:GOTO3730
- 3580 L4=L4+1
- 3590 F1=92:IFL1=15ANDI%(32)=L1ANDI%(23)=-1ANDL4=4GOTO3670
- 3600 F1=88:IFL1=39ANDL4=8GOTO3670
- 3610 F1=96:IFL1<9ANDL4=12ANDS%(13)=0GOTO3670
- 3620 F1=86:IFL1>87ANDL4=15GOTO3670
- 3630 F1=84:IFL1=58ANDL4=4GOTO3670
- 3640 F1=94:IFL1=10ANDL4=3ANDI%(19)=7GOTO3670
- 3650 F1=90:IFI%(37)=L1ANDL4=3ANDI%(32)>=0GOTO3670
- 3660 GOTO3730
- 3670 GOSUB4460:PRINT"[145]";:INPUTZ$:IFASC(Z$)<>89THENL4=0:GOTO3730
- 3680 PRINT"I AM PREPARED TO GIVE YOU A HINT, BUT"
- 3690 PRINT"IT WILL COST YOU";(98-F1)/2;"POINTS."
- 3700 PRINT"DO YOU WANT THE HINT";
- 3710 INPUTZ$:IFASC(Z$)<>89THENL4=0:GOTO3730
- 3720 H=H+(98-F1)/2:F1=F1+1:GOSUB4460
- 3730 RETURN
- 3740 IFL1=100THENF1=61:GOSUB4460:IFI%>0THENF1=62:GOSUB4460
- 3750 IF(T%(L1)AND8)=0GOTO3860
- 3760 IFI%(1)=-1GOTO3790
- 3770 IFL1=16THENPRINT"ROUGH STONE STEPS LEAD DOWN TO THE PIT."
- 3780 IFL1=17THENPRINT"ROUGH STONE STEPS LEAD TO THE TOP OF THE DOME."
- 3790 IFB2=0ORL1<19ORL1>20ORL1+L2=39GOTO3810
- 3800 PRINT"A CRYSTAL BRIDGE SPANS THE FISSURE."
- 3810 IFL1=73ANDD2=0THENPRINT"A RUSTY DOOR OBSTRUCTS PASSAGE TO NORTH"
- 3820 IFL1<60ORL1>61ORL1+L2=121GOTO3860
- 3830 IFB3=1THENF1=60:GOSUB4460:GOTO3860
- 3840 F1=30:GOSUB4460
- 3850 IFT>0THENPRINT"THERE IS NO SIGN OF THE TROLL."
- 3860 GOSUB4390:IFD%(0)<0ORJ1=0GOTO3890
- 3870 F1=12:GOSUB4460
- 3880 I%(28)=L1:FORJ=0TO3:D%(J)=J-1:NEXTJ
- 3890 FORJ=1TOI1:IFL1<>I%(J)GOTO3970
- 3900 IFJ<>27GOTO3920
- 3910 IFB1=0THENF1=131:GOSUB4460:GOTO3970
- 3920 IFJ=35ANDT<>0GOTO3970
- 3930 IFJ=15THEND%(4)=-1
- 3940 IFJ=12ANDC=0GOTO3970
- 3950 IFJ=21ANDB0>0GOTO3970
- 3960 PRINTI$(J):K8=J
- 3970 NEXTJ
- 3980 IFS%(40)=0ORI%(15)=0ORL5<99GOTO4020
- 3990 FORJ=1TO15:J2=I%(J):IFJ2<1GOTO4010
- 4000 IFS%(J2)=0GOTO4020
- 4010 NEXTJ:L5=60
- 4020 IFL1<10ORL1>11GOTO4050
- 4030 IFG=0THENPRINT"THE GRATE IS LOCKED."
- 4040 IFG=1THENPRINT"THE GRATE IS OPEN."
- 4050 IFL1=26ANDRND(1)>.7THENPRINT"A HOLLOW VOICE SAYS 'PLUGH'."
- 4060 IFL1<>50GOTO4080
- 4070 IFP1<3THENF1=73+P1:GOSUB4460
- 4080 IFL1<47ORL1>49OR(L2>46ANDL2<51)GOTO4110
- 4090 IFP1=1ORP1=2THENF1=132+P1:GOSUB4460
- 4110 IFI%(27)<>L1GOTO4130
- 4120 IFC=0THENF1=132:GOSUB4460
- 4130 GOSUB4390:IFJ1=0GOTO4170
- 4140 IFJ1=1GOTO4160
- 4150 PRINT"THERE ARE";J1;"THREATENING DWARVES HERE!":GOTO4170
- 4160 PRINT"THERE IS A THREATENING DWARF HERE!"
- 4170 IFD%(4)<>L1GOTO4250
- 4180 J2=0:FORJ=1TO14:IFI%(J)=-1THENJ2=J2+1
- 4190 NEXTJ:IFJ2<2ANDRND(1)<.3THENF1=70:GOSUB4460
- 4200 IFJ2<2GOTO4250
- 4210 F1=15:GOSUB4460
- 4220 I%=I%(15):IFI%=0THENI%=RND(1)*10+102:I%(15)=I%
- 4230 FORJ=1TO14:IFI%(J)=-1THENI%(J)=I%
- 4240 NEXTJ:D%(4)=I%
- 4250 RETURN
- 4260 I=0:IFK9<=I1THENI=I%(K9):IFI=-1GOTO4330
- 4270 IF(K9=23ORK9=33)THENIFI%(K9+1)=-1THENK9=K9+1:I=-1:GOTO4330
- 4280 IFI=L1THENI=-1:GOTO4330
- 4290 IFK9=16AND(T%(L1)AND16)>0THENI=-1
- 4300 IFK9=17ANDL1=49THENI=-1
- 4310 IFI>=0ANDL1>112THENGOSUB4340
- 4320 IF(K9=23ORK9=33)ANDI>=0THENK9=K9+1:GOTO4260
- 4330 RETURN
- 4340 I=0:IFL1=114GOTO4370
- 4350 IFK9=18ORK9=21ORK9=23ORK9=31THENI=-1
- 4360 RETURN
- 4370 IFK9=22ORK9=24ORK9=29ORK9=32THENI=-1
- 4380 RETURN
- 4390 J1=0:FORJ=0TO3:IFD%(J)=L1THENJ1=J1+1
- 4400 NEXTJ:RETURN
- 4410 GOSUB4390:IFJ1=0GOTO4450
- 4420 PRINT"A SHARP KNIFE IS THROWN AT YOU!"
- 4430 IFRND(1)>.2*J1THENPRINT"IT MISSED!":GOTO4450
- 4440 PRINT"IT GOT YOU!":GOTO4590
- 4450 GOTO430
- 4460 F%=F1/10:F2=F1-F%*10
- 4470 F1$="0:ADVF"+STR$(F%)
- 4480 IFF$=F1$ANDF2>F3GOTO4500
- 4490 CLOSE6:F$=F1$:OPEN6,8,6,F$
- 4500 F3=F2:GET#6,Z$:Z=ASC(Z$)-48-F3:IFZ>0THENCLOSE6:RETURN
- 4510 IFZ=0GOTO4540
- 4520 SYS900:IFST>0THENCLOSE6:RETURN
- 4530 GOTO4500
- 4540 SYS915
- 4550 RETURN
- 4560 REM
- 4570 J1=1:S%(L1)=0:GOTO340
- 4580 GOTO360
- 4590 FORJ=1TOI1:IFI%(J)=-1THENI%(J)=L1
- 4600 NEXTJ:IFL6<25ORL5<51GOTO4650
- 4610 R0=R0+2:F1=R0+22:GOSUB4460:INPUTZ$
- 4620 IFASC(Z$)<>89GOTO4670
- 4630 F1=R0+23:GOSUB4460:IFR0>5GOTO4670
- 4640 L1=7:I%(18)=6:L=0:GOTO330
- 4650 F1=59
- 4660 GOSUB4460
- 4670 GOSUB1380:CLOSE6
- 4680 END
- 5000 PRINT "SAVING GAME..."
- 5010 CLOSE 6
- 5020 OPEN 15,8,15
- 5030 PRINT#15,"S0:ADVENT.SAVE"
- 5040 INPUT#15,D
- 5050 F$="X":M0=1
- 5060 OPEN 6,8,6,"0:ADVENT.SAVE,S,W"
- 5070 FOR J=0 TO 4:PRINT#6,D%(J):NEXT J
- 5080 FOR J=0 TO 38:PRINT#6,I%(J):NEXT J
- 5090 FOR J=0 TO 114:PRINT#6,S%(J):NEXT J
- 5100 Z$=CHR$(13)
- 5110 PRINT#6,B0;Z$;B1;Z$;B2;Z$;B3;Z$;D2
- 5120 PRINT#6,C;Z$;H;Z$;I%;Z$;G;Z$;T
- 5130 PRINT#6,L;Z$;L1;Z$;L5;Z$;L6;Z$;M0
- 5160 PRINT#6,P1;Z$;R0;Z$;L2;Z$;L4
- 5170 PRINT#6,F$
- 5180 CLOSE 6
- 5190 CLOSE 15
- 5200 PRINT "GAME SAVED."
- 5210 GOTO 430
- 5300 PRINT "RESTORING GAME..."
- 5310 CLOSE 6
- 5320 OPEN 15,8,15
- 5330 OPEN 6,8,6,"0:ADVENT.SAVE"
- 5340 INPUT#15,D,Z$
- 5350 IF D<>0 THEN PRINT Z$:GOTO 5440
- 5360 FOR J=0 TO 4:INPUT#6,D%(J):NEXT J
- 5370 FOR J=0 TO 38:INPUT#6,I%(J):NEXT J
- 5380 FOR J=0 TO 114:INPUT#6,S%(J):NEXT J
- 5390 INPUT#6,B0,B1,B2,B3,D2
- 5400 INPUT#6,C,H,I%,G,T
- 5410 INPUT#6,L,L1,L5,L6,M0
- 5420 INPUT#6,P1,R0,L2,L4
- 5430 INPUT#6,F$
- 5440 CLOSE 6
- 5450 CLOSE 15
- 5460 GOTO 330
-